const Tools = {
  // 日期格式化
  GetFormatDate(date) {
    const d = new Date(date)
    const y = d.getFullYear() // 年份
    const m = (d.getMonth() + 1).toString().padStart(2, '0') // 月份
    const r = d.getDate().toString().padStart(2, '0') // 日子
    const hh = d.getHours().toString().padStart(2, '0') // 小时
    const mm = d.getMinutes().toString().padStart(2, '0') // 分钟
    const ss = d.getSeconds().toString().padStart(2, '0') // 秒
    return `${y}-${m}-${r} ${hh}:${mm}:${ss}`// es6 字符串模板
  },
  // 重置S3M图层的透明度
  ResetOpacityOfS3MLayer(layerS3M, v) {
    layerS3M.style3D.fillForeColor.alpha = v;
    layerS3M.style3D.lineColor.alpha = v;
    layerS3M.style3D.pointColor.alpha = v;
  },
  // 重置影像图层的透明度
  ResetOpacityOfImageLayer(layerIm, v) {
    layerIm && (layerIm.alpha = v);
  },
  // 定位到某个点
  /**
   * @description: 飞行定位到一个笛卡尔空间直角坐标点位置
   * @param {Cartesian3} destination 目标点 Cartesian3
   * @param {Number} heading  默认=0.0   偏航角 正北,由正北向东偏向为正
   * @param {*} pitch  =-90     俯仰角 垂直向下， ENU局部坐标系中XY平面的旋转角度，平面下为负，上为正，
   * @param {*} range    =0.0   距目标点距离
   * @param {*} duration =3   持续时间
   * @param {*} callBack =null   回调函数，定位完成后执行
   */
  FlyToPoint(destination, heading = 0.0, pitch = -90, range = 0.0, duration = 3, callBack = null) {
    if (!window.viewer) {
      console.log('三维球未初始化！');
      return;
    }
    if (!destination) {
      console.log('定位目标点不对！');
      return;
    }
    const boundingSphere = new Cesium.BoundingSphere(destination, 0.0);
    window.viewer.camera.flyToBoundingSphere(boundingSphere, {
      duration: duration,
      maximumHeight: 100,
      complete: function () {
        if (callBack) {
          callBack();
        } else {
          console.log('定位失败！');
        }
      },
      cancel: function () {
        console.log('定位取消！');
      },
      offset: {
        heading: Cesium.Math.toRadians(heading),
        pitch: Cesium.Math.toRadians(pitch),
        range: range
      },
    });
  }
}
export default Tools;